var Moveables = GameEntity.extend({
	init: function (id, config){
		this._super(id, config);
		this.defaultSprite = config.sprite;	
		this.direction = config.direction;
		this.speed = config.speed;
		this.container = config.container;
		this.frame = 0;
	},
	draw: function (canvas){
		canvas.ctx.drawImage(this.sprite.image, 0+Math.floor(this.frame)*this.w, 0+this.direction*this.h, this.w, this.h, this.x, this.y, this.w, this.h);
	},
	update: function (){
		//най-простото движение - по-права линия според посоката(direction)
		if (this.direction === 0) { 
			this.y -= this.speed;
		}
		if (this.direction === 2) { 
			this.y += this.speed;
		}
		if (this.direction === 1) { 
			this.x -= this.speed;
		}
		if (this.direction === 3) {
			this.x += this.speed;
		}
		
		this.updateFrame();
	},
	updateFrame: function(){
		if(this.frame >= this.sprite.numberOfFrames){
			/*Ако действието е крайно (пр. героя удря) и е свършило(минали са всичките му кадри),
			спрайта се връща на дефоутната си стойност;	Примерно за героя това е heroWalk; */
			if(this.sprite.finite){						
				this.sprite = this.defaultSprite;
			}
			this.frame = 0;
		}else{
			this.frame += this.speed/10;
		}
	},
	kill: function(){
		delete this.container[this.id];
	}
});


